var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
//身份验证
const jwtAuth = require(`./utils/jwt`)

// var indexRouter = require('./routes/index');

// var productsRouter = require('./routes/products');
// var ordersRouter = require('./routes/orders');
var ordersRouter = require('./routes/orders');
var customersRouter = require('./routes/customers');
var adminsRouter = require('./routes/admins');
var salesmansRouter = require('./routes/salesmans');
var insuresRouter = require('./routes/insures');
var claimsRouter = require('./routes/claims.js');
var typesRouter = require('./routes/types');
var sellersRouter = require('./routes/sellers');


//连接mongoose
const mongoose = require('mongoose');
const dbURI = 'mongodb://localhost:27017/insure-system';
mongoose.connect(dbURI, {
  useNewUrlParser: true,
  useUnifiedTopology: true
});
mongoose.connection.on('connected', () => {
  console.log('mongoose连接完毕！')
})
var app = express();




// CORS：设置允许跨域中间件
var allowCrossDomain = function (req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With,Origin,Content-Type,Accept,Authorization");
  res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
  res.header('Access-Control-Allow-Credentials', 'true');
  next();
};
app.use(allowCrossDomain);


// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({
  extended: false
}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
//身份验证

// app.use(jwtAuth)



app.use('/admins', adminsRouter);
app.use('/salesmans', salesmansRouter);
app.use('/insures', insuresRouter);
app.use('/sellers', sellersRouter);
app.use('/orders', ordersRouter);
app.use('/types', typesRouter);
app.use('/customers', customersRouter);
app.use('/claims', claimsRouter);










// catch 404 and forward to error handler
app.use(function (req, res, next) {
  next(createError(404));
});

// error handler
app.use(function (err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

// module.exports = app;
app.listen(3000, () => {
  console.log("3000端口启动成功！");
})